为您找到与java中hashmap和hashtable之间的区别【汇总八篇】 百科知识相关的共200个结果:
HashMap和Hashtable是 Java Collection Framework 的两个重要成员,它们之间存在什么样的区别呢?下面读文网小编带你去了解了解一下。
HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。即 HashTable不允许null值其实在编译期不会有任何的不一样,会照样执行,只是在运行期的时候Hashtable中设置的话回出现空指针异常。 HashMap允许null值是指可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。
浏览量:2
下载量:0
时间:
在编程的时候往往会出现系统编译时无法检测到的错误,可是在运行时会出错,如果在可能出错的地方抛出异常,那样便严整了代码的正确性.比如数组越界,分母为0,文件等。 编程中会用try语句和throw语句来对编程运行过程中出现的异常情况进行处理。那么这两种有什么区别呢?下面小编带你去了解一下。
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。
throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。
Finally为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。
每当遇到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。
package book.exception;
/**
* 抛出异常和声明异常
* @author joe
*
*/
public class ThrowAndThrows {
/**
* 计算一个数字的平方根
* @param nStr 以字符串的形式提供数字
* @return 返回平方根
* @throws Exception 当用户输入的字符串为空,
* 或者字符串无法转换成数字,或者转换成的数字小于0,都会抛出异常
*/
public static double sqrt(String nStr) throws Exception {
if (nStr == null) {
https://用trow关键字抛出异常,当异常被抛出时,程序会跳出该方法
throw new Exception("输入的字符不能为空!");
}
double n = 0;
try {
n = Double.parseDouble(nStr);
} catch(NumberFormatException e) {
https://将parseDouble方法可能抛出的异常NumberFormatException捕获,
https://然后将捕获的异常重新封装并输出
throw new Exception("输入的字符串必须能够转化成数字!", e);
}
if (n < 0 ){
throw new Exception("输入的字符串转化成的数字必须大于0!");
}
return Math.sqrt(n);
}
public static void main(String[] args) throws Exception {
try{
ThrowAndThrows.sqrt("-124.56");
} catch(Exception e) {
https://将sqrt方法声明的可能抛出的Exception异常捕获
https://打印捕获的异常的堆栈信息,从堆栈信息中可以发现异常发生的位置和原因
System.out.println("Got a Exception:" + e.getMessage());
e.printStackTrace();
throw e; https://不做进一步处理,将异常向外抛出
}
https://将sqrt声明了可能会抛出的异常向外抛出,必须在方法声明中使用throws
ThrowAndThrows.sqrt("-124.56");
}
}
程序输出结果:
Got a Exception:输入的字符串转化成的数字必须大于0!
java.lang.Exception: 输入的字符串转化成的数字必须大于0!
at book.exception.ThrowAndThrows.sqrt(ThrowAndThrows.java:30)
at book.exception.ThrowAndThrows.main(ThrowAndThrows.java:37)
Exception in thread "main" java.lang.Exception: 输入的字符串转化成的数字必须大于0!
at book.exception.ThrowAndThrows.sqrt(ThrowAndThrows.java:30)
at book.exception.ThrowAndThrows.main(ThrowAndThrows.java:37)
源码分析:
在main方法里,由于sqrt方法的声明中有throws关键字,所以,在调用该方法时,必须对throws后面声明的异常进行处置,处置的方法有两种:
(1)main方法处理该异常,使用try.....catch语句,将可能会出现的异常的代码放在try块内,将处理异常的代码放在catch块内,并指明catch能够捕获的异常的类型,当异常被捕获时,执行catch块内的语句。
(2)main方法不处理该异常,将异常向外层程序抛出。在方法声明中使用throws关键字抛出异常,方法体中不需要使用try...catch语句。
异常类Exception的getMessage方法用来获取一场的描述信息,printStackTrace方法用来打印异常的堆栈信息,通过堆栈信息能够查明异常发生的原因和位置,在调试的时候常用。
浏览量:2
下载量:0
时间:
很多喜欢摄影的人们都知道,镜头主要分两种:变焦镜头和定焦镜头。这两种镜头的区别可能就不是所有人都清楚 了。下面,就让读文网小编来告诉你变焦镜头和定焦镜头的区别。
定焦镜头唯一的缺点恐怕就是不方便了,需要调整拍摄物体的大小时只有通过摄影者的移动来实现,在某些不适合移动的场合就无能力了。
浏览量:2
下载量:0
时间:
建设工程中有许多合同,这些合同都是从各个方面保障我们的人身权益。建设工程合同与承揽合同是建设合同的两种主要合同,它们之间存在什么区别呢?下面读文网小编给大家介绍一下建设工程合同与承揽合同的区别。
在承揽合同中,定作人解除合同后,承揽只能要求定作人赔偿损失,而不能要求继续履行。
而在建设工程合同中,除特定情形外,一方违约时,对方当事人都可以要求其继续履行。
小编推荐:承揽人的权利和义务
1.按约定完成工作。承揽人应按合同约定的时间、方式、数量、质量完成交付的工作。这是承揽人的首要义务,也是其获得酬金应付出的对价。
承揽人应以自己的设备、技术和劳力亲自完成约定的工作,未经定作人同意,承揽人不得将承揽的主要工作交由第三人完成。承揽人将承揽的辅助工作交由第三人完成,或依约定将承揽的主要工作交由第三人完成的,承揽人就第三人的完成的工作对定作人负责。
2.提供或接受原材料。完成定作所需的原材料,可以约定由承揽人提供或由定作人提供。
承揽人提供原材料的,应按约定选购并接受定作人检查;定作人提供的,承揽人应及时检查,妥善保管,并不得更换材料。
3.及时通知和保密的义务。对于定作人提供的原材料不符合约定的,或定作人提供的图纸、技术要求不合理的,应及时通知定作人。
对于完成的工作,定作人要求保密的,承揽人应保守秘密,不得留存复制品或技术资料。
4.接受监督检查。承揽人在完成工作时,应接受定作人必要的监督和检验,以保证工作符合定作人的要求。
5.交付工作成果。承揽人完成的工作成果,应及时交付给定作人,并提交与工作成果相关的技术资料、质量证明等文件。但在定作人未按约定给付报酬或材料价款时,承揽人得留置工作成果。
6.对工作成果的瑕疵担保。承揽人交付的工作成果应符合约定的质量,承揽人对已交付工作成果的隐蔽瑕疵及该瑕疵所造成的损害承担责任。
7.交付的工作成果有隐蔽瑕疵,验收时用通常方法或约定的方法不能发现,验收后在使用过程中暴露或致定作人或第三人受损害的,承揽人应根据合同约定或法律的规定,承担损害赔偿责任。
浏览量:2
下载量:0
时间:
在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变而有些不能发生改变,这些数据在程序中分别被叫做变量和常量。下面小编跟大家讲讲Java中变量和常量之间的区别,一起来看看。
常量:其值不变即为常量。
语法:
数据类型 常量名 = 值;
double PI = 3.14;
备注:
一般默认常量名大写。
变量与常量之间关系(量间关系)
先来一个简单的实例,好了解 Java 里变量与常量之间的关系。
下面的程序里声明了两种 Java 经常使用到的变量,分别为整型变量 num 与字符变量 ch。为它们赋值后,再把它们的值分别显示在控制台上:
下面的程序声明了两个变量,一个是整型,一个是字符型
输出结果:
3 是整数!
z 是字符!
说明:
声明了两种不同类型的变量 num 与 ch,并分别将常量 3 与字符“z”赋值给这两个变量,最后再将它们显示在显示器上。声明一个变量时,编译程序会在内存里开辟一块足以容纳此变量的内存空间给它。不管变量的值如何改变,都永远使用相同的内存空间。因此,善用变量将会是一种节省内存的方式。
常量是不同于变量的一种类型,它的值是固定的,例如整数常量、字符串常量。通常给变量赋值时,会将常量赋值给它,在程序 TestJava 中,第 6 行 num 是整型变量, 而 3 则是常量。 此行的作用是声明 num 为整型变量, 并把常量 3 这个值赋给它。
相同的,第 7 行声明了一个字符变量 ch,并将字符常量'z'赋给它。当然,在程序进行的过程中,可以为变量重新赋值,也可以使用已经声明过的变量。
常量代表程序运行过程中不能改变的值。
常量在程序运行过程中主要有2个作用。
分别为代表常数,便于程序的修改和增强程序的可读性。
常量的语法格式和变量类型,只需要在变量的语法格式前面添加关键字final即可。在Java编码规范中,要求常量名必须大写。
则常量的语法格式如下
final 数据类型 常量名称 = 值;
final 数据类型常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n;
例如:
final double PI = 3.14;
final char MALE=‘M’,FEMALE=‘F’;
在Java语法中,常量也可以首先声明,然后再进行赋值,但是只能赋值一次,示例代码如下:
final int UP;
UP = 1;
常量的两种用途对应的示例代码分别如下:
代表常数
final double PI = 3.14;
int r =5;
double l = 2 * PI * r;
double s = PI * r * r;
在该示例代码中,常量PI代表数学上的∏值,也就是圆周率,这个是数学上的常数,后续的变量r代表半径,l代表圆的周长,s代表圆的面积。
则如果需要增加程序计算时的精度,则只需要修改PI的值3.14为3.1415926,重新编译程序,则后续的数值自动发生改变,这样使代码容易修改,便于维护。
增强程序的可读性
int direction;
final int UP = 1;
final int DOWN = 2;
final int LEFT = 3;
final int RIGHT = 4;
在该示例代码中,变量direction代表方向的值,后续的四个常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4,这样在程序阅读时,可以提高程序的可读性。
猜你感兴趣:
浏览量:2
下载量:0
时间:
中国军事力量整体上是足够强大的,这点毋庸怀疑。但是,面对这个纷争的世界、面对“落后就要挨打”的血的国家教训,我们希望中国的军事力量比现有水平更加强大!下面小编给大家导弹驱逐舰052C与052D的区别,让你更加了解我们国家的军事武装力量。
052C相控阵雷达天线的外部曾包裹着一片圆弧型的外壳,据说是“散热”用的,052D变成了平面的,这说明我相控阵雷达有了极大改进!
浏览量:2
下载量:0
时间:
计算机术语中有Java和Java web这两个词,通过学习Java与Java web的详细介绍。可以知道它们是不同的概念。下面,读文网小编给你介绍一下这两者的区别。
一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 "Java" 的名字有助于这门新生语言的传播。
它们的相同之处包括:
它们的语法和 C 语言都很相似;
它们都是面向对象的(虽然实现的方式略有不同);
JavaScript 在设计时参照了 Java 的命名规则;
它们的不同之处包括:
JavaScript 是动态类型语言,而 Java 是静态类型语言;
JavaScript 是弱类型的,Java 属于强类型;
JavaScript 的面向对象是基于原型的(prototype-based)实现的,Java 是基于类(class-based)的;
JavaScript 除了长得和 Java 比较像之外,语言风格相去甚远。JavaScript 在设计时所参考的对象不包括 Java,而包括了像 Self 和 Scheme 这样的语言。
浏览量:2
下载量:0
时间:
阴虚和阳虚有哪些区别,可得记住了。千万别搞错了阴虚和阳虚的区别。下面由读文网小编为你分享阴虚和阳虚的区别的相关内容,希望对大家有所帮助。
中医认为,阴虚应补其不足,阴虚者倘若胡乱进食补阳的食物会令阳火过旺,使身体机能处于一种过度兴奋的状态,消耗体内津液,加重口干喉痛、手足心热及心烦失眠等症状。阴虚者平时宜吃具有甘凉滋润、生津养阴作用的食物,忌吃辛辣刺激性食物,少吃煎、炸、炒、爆及性热上火的食物。吃过晚饭,到户外散散步,如海边、山林、河畔、湖边等地方。
浏览量:5
下载量:0
时间:
大家对生姜一定不会陌生,其实养生专家早就发现以生姜为原料煮茶喝对女性的好处特别多。下面就给大家详细介绍姜茶的好处有哪些。
生姜中所富含抗氧化剂姜辣素,有杀菌效用,被人体食用消化吸收后,有助于增强人体免疫力,防止多种疾病的发生。
浏览量:2
下载量:0
时间:
国际交流文化活动的频繁也促使了中西方餐饮文化的相互交流与融合,融合之中的阵痛也是不可避免的,中餐礼仪和西餐礼仪的差异便是其中比较突出的一个方面。下面是读文网为大家准备的中餐与西餐礼仪区别,希望可以帮助大家!
在正式的宴会上,水杯放在菜盘左上方,酒杯放在右上方。筷子与汤匙可放在专用座子上或放在纸套内。公用的筷子和汤匙最好放在专用的座子上。要备好牙签和烟灰缸。
中餐和西餐的礼仪差别的餐具主要是筷子。在中国几千年的饮食文化中,用筷子形成了基本的规矩和礼仪,如:忌敲筷子。在等待就餐时,不能坐在桌边一手拿一根筷子随意敲打或用筷子敲打碗盏或茶杯。忌掷筷。在进餐前发放筷子时,要把筷子一双双理顺,然后轻轻地放在每个餐位前,相距较远时,可请人递交过去,不能随手掷在桌子上,更不能掷在桌下。忌叉筷。筷子不能一横一竖交叉摆放,不能一根大头,一根小头。筷子要摆在碗的旁边,不能搁在碗上。忌插筷。用餐者因故须暂时离开时,要把筷子轻轻搁在桌上或餐碟边,不能插在饭碗里。忌挥筷。夹菜时,不能把筷子在菜盘里挥来挥去,上下乱翻。遇到别的宾客也来夹菜时,要注意避让,避免“筷子打架”。忌舞筷。用餐过程中进行交谈,不能把筷子当成道具,在餐桌上乱舞,也不要在请别人用菜时,把筷子戳到别人面前。用餐完毕,筷子应整齐地搁在靠碗右边的桌上,并应等众人都放下筷子后,在主人示意散席时方可离座,不可自己用餐完毕,便扔下筷子离席。注意这些中餐和西餐的礼仪的差别,便可让人觉得有教养。
浏览量:2
下载量:0
时间:
由于3到8岁宝宝处于长身体的重要时期,所以在保证他们正常饮食的情况下,可以给他们准备一些美味营养的点心来补充能量。来跟读文网小编一起学习宝宝菜谱做法大全吧!
软绵适口,清香不腻
主料:
牛排2片、荷叶薄饼2张、生菜叶适量。植物油、黑胡椒、盐、料酒、肉酱各适量。
步骤:
1、牛排洗净后,放入黑胡椒、盐以及料酒拌匀,腌20分钟左右。
2、起油锅烧热后,下入牛排煎至八成熟。
3、取荷叶饼,将牛排和生菜叶依次铺好,刷上一点肉酱,然后卷起来,用刀切片即可。
营养经:
牛肉含有丰富的蛋白质,氨基酸组成比猪肉更接近人体需要,能提高机体抗病能力,对生长发育及手术后、病后调养的人在补充失血、修复组织等方面物别适宜。适用于中气下陷、气短体虚,筋骨酸软、贫血久病及面黄目眩之人食用。
浏览量:2
下载量:0
时间:
艾叶,中药名。为菊科植物艾Artemisia argyi Levl.et Vant.的干燥叶。夏季花未开时采摘,除去杂质,晒干。下面就由读文网小编为大家介绍下艾叶的功效和作用,希望可以帮到大家哦。
1、冷劳久病:茅香花、艾叶四两,烧存性,研末,粟米饭丸梧子大。初以蛇床子汤下二十丸至三十丸,微吐不妨,后用枣汤下,立效。(《圣济总录》)
2、伤寒时气,温病头痛,壮热脉盛:以干艾叶三升。水一斗,煮一升,顿服取汗。(《肘后方》)
3、妊娠风寒卒中,不省人事,状如中风:用熟艾三两,米醋炒极热,以绢包熨脐下,良久即苏。(《妇人良方》)
浏览量:2
下载量:0
时间:
一个国家的兴盛与航海事业密不可分。世界上不少海洋国家都有自己的航海节或海洋日,美国是世界第一强国,在其发展历程中,始终将海洋视为国家繁荣与安全的根本,从独立战争到第二次世界大战,从多次发动全球局部战争到今天的反恐战略实施,航运都发挥了极其重大的作用。为弘扬美国人的航海文化与爱国精神,每年的航海节都要由政府部门牵头,进行隆重的庆祝活动。日本的航海节是每年的7月20日,日本政府要求全体国民在这一天反复思考大海航行对于日本的重大意义。英国各地庆祝航海节的日期和名称各不相同,其中,英国大雅茅斯航海节于每年9月6日至7日在大雅茅斯港举行,以纪念当年盛极一时的英国航海事业。加拿大的航海节定在每年的6月21日至22日。中国有300多万平方公里的海域面积,在中国的国际贸易中,90%的货物通过海运完成。中国是世界航海大国,在众多的节日中没有航海的节日是不应该的。
六百年前,明朝航海家郑和率领庞大舟师七下西洋,拉开了人类走向远洋的序幕。郑和下西洋的历史之久、规模之大、航程之远与抵达国家和地区之多,是当时世界上任何国家都无可比拟的,比欧洲航海家哥伦布、达伽马的远洋航行时间早了半个多世纪。当代美国史学家路易斯·利瓦塞斯这样评论:郑和船队在世界历史上是一支举世无双的舰队。第一次世界大战之前没有可以与之相匹。英国科技史权威李约瑟博士则写道:世界上第一个远洋舰队由郑和率领,27800名汉人分乘208艘船舰,驶向三大洋。郑和下西洋的意义还在于把中国和东南亚各国的政治经济交往推向了高峰,为东南亚地区的繁荣稳定作出了不可磨灭的贡献。今年东南亚许多国家都举行了纪念郑和的活动,如马来西亚首度大马将首度发行以郑和事迹为题材的纪念邮票,以纪念郑和下西洋六百周年及马中交往六百周年。新加坡旅游局举办的“郑和文化村”活动三十日开幕。
郑和下西洋在中国乃至世界航海史上都留下了光辉的一页,他是中国人民的骄傲,也是世界人民的骄傲,在这种环境下,把郑和下西洋的起航日7月11日定为“中国航海节”,意义非常重大,有利于弘扬和培育以爱国主义为核心的团结统一、爱好和平、勤劳勇敢、自强不息的伟大民族精神,增强中华民族的自信心和自豪感,增强振兴中华民族的责任感和历史使命感。有利于增强海洋意识和海洋国土观念,形成全社会关心、支持港口航运事业发展的氛围,推动海洋文化、科技和经济发展;中国港口与世界360多个港口之间开辟有远洋班轮航线,但是,我国民众对航海科技知识的了解不多,航海事业发展与发达国家相比仍有较大的差距。我们可以通过举办“航海日”活动,普及航海科学知识,形成全社会关心、支持航海事业发展的氛围,形成大力开展航海科研活动的良好风气。有利于向海外宣传中华民族正义、和平、睦邻、友好的优良传统,促进世界和平与共同发展。郑和七下西洋,从未占领他国一寸土地、掠夺他国一分财产,旨在传播友谊,促进经济贸易,增加友好交流,堪称是与世界各国交往的典范。郑和的行为,展现了中华民族是热爱和平的伟大民族。
中国航海日相关
浏览量:2
下载量:0
时间: